﻿using SW.EF.DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SW.EF.BLL.PermissionModule
{
    /// <summary>
    /// 用户接口
    /// </summary>
    public interface IUserService : IBaseService
    {
        /// <summary>
        /// 添加一个用户
        /// </summary>
        /// <param name="user">User对象</param>
        void AddUser(User user);

        /// <summary>
        /// 返回一个用户列表
        /// </summary>
        /// <returns>User列表</returns>
        IList<User> GetUsers();

        /// <summary>
        /// 返回一个用户对象
        /// </summary>
        /// <param name="id">用户ID</param>
        /// <returns>用户对象</returns>
        User GetUser(int id);

        /// <summary>
        /// 返回一个用户对象
        /// </summary>
        /// <param name="account">用户账号</param>
        /// <returns>用户对象</returns>
        User GetUser(string account);

        /// <summary>
        /// 是否存在用户
        /// </summary>
        /// <param name="account">账号</param>
        /// <param name="password">密码</param>
        /// <returns>存在：True, 不存在: False</returns>
        bool IsExistUser(string account, string password);

        /// <summary>
        /// 返回功能模块类目列表
        /// 首页左侧导航类目
        /// 只需要取出权限的1，2级类目即可。
        /// </summary>
        /// <param name="isAdmin">是否管理员</param>
        /// <param name="userId">用户ID</param>
        /// <param name="roleIdList">用户角色ID列表</param>
        /// <returns>权限集合</returns>
        List<Permission> GetModuleCategoryList(bool isAdmin, int userId, List<int> roleIdList);
    }
}
